home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / game / actio / BatNav.lha / BatNav / BatNav.asc < prev    next >
Text File  |  1997-12-07  |  9KB  |  479 lines

  1. Rem -------------------------------------------------------------
  2. Rem
  3. Rem                    BATAILLE-NAVALE  V1.10
  4. Rem
  5. Rem                     A Bonney    27-08-92
  6. Rem
  7. Rem                   Révisé les 06 & 07-12-97
  8. Rem
  9. Rem ----------------------- PRG PRINCIPAL -----------------------
  10. Rem
  11. Set Buffer 8
  12. Load Iff Dir$+"Data/Tb_Présentation",0
  13. Hide On
  14. Led Off
  15. Load Dir$+"Data/En_Mer.abk"
  16. Music 1
  17. Mvolume 32
  18. Repeat
  19. Until Mouse Key<>0
  20. Screen Close 0
  21. DEBUT:
  22. Rem
  23. Randomize Timer
  24. Gosub INITIALISATION
  25. Gosub AFFICHAGE
  26. Rem
  27. FUITE:
  28. Rem
  29. Screen 0
  30. Shift Off
  31. Screen 4
  32. Cls
  33. Hide On
  34. Locate ,1
  35. Centre Border$(" Le navire ennemi a réussi à vous distancer...  ",1)
  36. Goto FIN
  37. Rem
  38. BATAILLEGAGNE:
  39. Rem
  40. Screen 0
  41. Shift Off
  42. Screen 4
  43. Cls
  44. Hide On
  45. Locate ,1
  46. Centre Border$(" Félicitations ! Vous avez coulé le bateau ennemi... ",1)
  47. JEGAGNE=1
  48. Goto FIN
  49. Rem
  50. EPAVE:
  51. Rem
  52. Shift Off
  53. Screen 4
  54. Cls
  55. Hide On
  56. Locate ,1
  57. Centre Border$(" Les canots à la mer ! le navire est ingouvernable... ",1)
  58. Goto FIN
  59. Rem
  60. MORT:
  61. Rem
  62. Shift Off
  63. Screen 4
  64. Cls
  65. Hide On
  66. Locate ,1
  67. Centre Border$(" Il n'y a plus un homme vivant à bord ! Reste le chat... ",1)
  68. Goto FIN
  69. Rem
  70. COULE:
  71. Rem
  72. Shift Off
  73. Screen 4
  74. Cls
  75. Hide On
  76. Locate ,1
  77. Centre Border$(" Touché sous la ligne de flotaison ! Au canots... ",1)
  78. Goto FIN
  79. Rem
  80. ECHOUAGE:
  81. Rem
  82. Shift Off
  83. Screen 4
  84. Cls
  85. Hide On
  86. Locate ,1
  87. Centre Border$(" Votre adversaire s'est échoué sur une ile... ",1)
  88. JEGAGNE=1
  89. Goto FIN
  90. Rem
  91. CHOC:
  92. Rem
  93. Shift Off
  94. Screen 4
  95. Cls
  96. Hide On
  97. Locate ,1
  98. Centre Border$(" Vous etes entré en collision avec l'autre vaisseau... ",1)
  99. Goto FIN
  100. Rem
  101. NAUFRAGE:
  102. Rem
  103. Shift Off
  104. Screen 4
  105. Cls
  106. Hide On
  107. Locate ,1
  108. Centre Border$(" Sauve qui peut ! Le navire s'est échoué sur une ile... ",1)
  109. Rem
  110. FIN:
  111. Locate ,5
  112. Centre Border$(" LA PARTIE EST TERMINEE ",1)
  113. Music Off
  114. Wait 50
  115. If JEGAGNE=1
  116.    Sam Play 1
  117. Else
  118.    Sam Play 2
  119. End If
  120. Wait 150
  121. Screen 0
  122. Fade 5
  123. Wait 100
  124. Reset Zone
  125. Td Quit
  126. Screen Close 0
  127. Screen Close 1
  128. Screen Close 2
  129. Screen Close 3
  130. Screen Close 4
  131. Erase 3
  132. Erase 5
  133. Rem
  134. End
  135. Rem
  136. Rem -------------------- INITIALISATION -------------------------
  137. Rem
  138. INITIALISATION:
  139. Rem
  140. Load Dir$+"Data/BatNavSamples.abk"
  141. Screen Open 0,320,200,16,Lowres
  142. Screen Hide 0
  143. Td Clear All
  144. Td Dir Dir$+"Data"
  145. Td Load "bateau"
  146. Td Load "ile1"
  147. Td Load "boulet"
  148. Td Load "explosion"
  149. Double Buffer
  150. Autoback 0
  151. Load Iff Dir$+"Data/Ciel",1
  152. Screen Hide 1
  153. Load Iff Dir$+"Data/1°Plan",2
  154. Screen Hide 2
  155. Load Iff Dir$+"Data/Mer",3
  156. Screen Hide 3
  157. Screen Open 4,640,56,4,Hires
  158. Screen Hide 4
  159. Load Iff Dir$+"Data/Tb_Commandes",4
  160. Screen Display 4,128,252,640,56
  161. Screen 0
  162. Get Palette(2)
  163. Flash Off
  164. Screen To Front 0
  165. Td Screen Height 200
  166. Limit Mouse 128,252 To 447,307
  167. Reserve Zone 9
  168. For Q=1 To 9
  169.    Read XZ,YZ
  170.    Set Zone Q,XZ,YZ To XZ+14,YZ+14
  171. Next Q
  172. Data 111,4,195,4,111,36,195,36,279,4,299,20,279,36,259,20,279,20
  173. Td Move 0,0,45,0
  174. Td Object 1,"boulet",0,45,0,0,0,0
  175. Td Set Zone 0,0,0,0,0,200
  176. HZ=Rnd(359)
  177. Td Object 4,"bateau",3000*Sin(HZ),0,3000*Cos(HZ),0,HZ*182+32760,0
  178. Td Set Zone 4,0,0,0,4,100
  179. For Q=1 To 5
  180.    HZ=Rnd(359)
  181.    Td Object Q+6,"ile1",5000*Q*Sin(HZ),0,5000*Q*Cos(HZ),0,HZ*182,0
  182.    Td Set Zone Q+6,0,0,0,Q+6,2000
  183. Next Q
  184. VB1=5
  185. VIE2=100
  186. HOMMES=100
  187. VOILES=100
  188. COQUE=100
  189. MXBAD=100
  190. Shift Up 30,4,6,1
  191. VUE=1
  192. Screen Show 0
  193. Screen Show 4
  194. Show On
  195. Return
  196. Rem
  197. Rem ---------------------- AFFICHAGE -----------------------------
  198. Rem
  199. AFFICHAGE:
  200. Rem
  201. Do
  202.    Inc BADABOUM
  203.    If BADABOUM>MXBAD
  204.       BADABOUM=MXBAD
  205.    End If
  206.    If BAOUM1>0
  207.       Td Kill 3
  208.       If BAOUM1=1
  209.          Sam Play %1100,4
  210.       Else
  211.          Sam Play %1100,3
  212.          If DEGATS2=1
  213.             VIE2=VIE2-(1+Rnd(9))
  214.             If VIE2<1
  215.                VIE2=0
  216.             End If
  217.             Screen 4
  218.             Hslider 219,23 To 419,31,100,VIE2,2
  219.             Screen 0
  220.             DEGATS2=0
  221.          End If
  222.       End If
  223.       BAOUM1=0
  224.    End If
  225.    If BAOUM2>0
  226.       Td Kill 6
  227.       If BAOUM2=1
  228.          Sam Play %1100,3
  229.       Else
  230.          BADABOUM=0
  231.          Sam Play %1100,4
  232.          If DEGATS1=1
  233.             HOMMES=HOMMES-(5+Rnd(45))
  234.             If HOMMES<1
  235.                HOMMES=0
  236.             End If
  237.             VOILES=VOILES-(5+Rnd(45))
  238.             If VOILES<1
  239.                VOILES=0
  240.             End If
  241.             COQUE=COQUE-(5+Rnd(45))
  242.             If COQUE<1
  243.                COQUE=0
  244.             End If
  245.             Gosub AFFIDEG
  246.             DEGATS1=0
  247.          End If
  248.       End If
  249.       BAOUM2=0
  250.    End If
  251.    ANGB1=Td Bearing B(4,0)
  252.    DR=Sgn(ANGB1)*182
  253.    If DR=0 Then DR=-1
  254.    If Td Bearing R(4,0)<5000
  255.       Td Angle Rel 4,0,DR,0
  256.    End If
  257.    CAP2=Td Attitude B(4)-ANGB1
  258.    If CAP2>65520
  259.       CAP2=CAP2-65520
  260.    End If
  261.    If CAP2<0
  262.       CAP2=CAP2+65520
  263.    End If
  264.    If Td Bearing R(4,0)<5000 and TIR2=0
  265.       If CAP2>12190 and CAP2<20570 and BADABOUM=MXBAD
  266.          TIR2=1
  267.       End If
  268.       If CAP2>44950 and CAP2<53330 and BADABOUM=MXBAD
  269.          TIR2=1
  270.       End If
  271.       If TIR2=1
  272.          BAOUM2=1
  273.          BLX2=Td Position X(4)
  274.          BLZ2=Td Position Z(4)
  275.          Td Object 6,"explosion",BLX2,20,BLZ2,0,0,0
  276.          Td Face 6,0
  277.          Td Object 5,"boulet",BLX2,20,BLZ2,0,0,0
  278.          Td Face 5,0
  279.          Td Set Zone 5,0,0,0,5,10
  280.       End If
  281.    End If
  282.    VMAX=Int((HOMMES+VOILES+COQUE)/30)
  283.    If VB1>VMAX
  284.       VB1=VMAX
  285.       Gosub AFFIVB1
  286.    End If
  287.    VB2=Int(VIE2/20)
  288.    Rem -------------------------------------------------------
  289.    If Mouse Key
  290.       CASE=Hzone(X Mouse,Y Mouse-200)
  291.       If CASE=1
  292.          If VB1>0
  293.             Td Angle Rel 0,0,-182,0
  294.             Td Angle Rel 1,0,-182,0
  295.             Dec CAP
  296.             If CAP<0
  297.                CAP=CAP+360
  298.             End If
  299.             Gosub AFFICAP
  300.          End If
  301.       End If
  302.       If CASE=2
  303.          If VB1>0
  304.             Td Angle Rel 0,0,182,0
  305.             Td Angle Rel 1,0,182,0
  306.             Inc CAP
  307.             If CAP>359
  308.                CAP=CAP-360
  309.             End If
  310.             Gosub AFFICAP
  311.          End If
  312.       End If
  313.       If CASE=3
  314.          Dec VB1
  315.          If VB1<0
  316.             VB1=0
  317.          End If
  318.          Gosub AFFIVB1
  319.       End If
  320.       If CASE=4
  321.          Inc VB1
  322.          If VB1>VMAX
  323.             VB1=VMAX
  324.          End If
  325.          Gosub AFFIVB1
  326.       End If
  327.       If CASE=5
  328.          VUE=1
  329.          REGARD=0
  330.       End If
  331.       If CASE=6
  332.          VUE=2
  333.          REGARD=16380
  334.       End If
  335.       If CASE=7
  336.          VUE=3
  337.          REGARD=32760
  338.       End If
  339.       If CASE=8
  340.          VUE=4
  341.          REGARD=49140
  342.       End If
  343.       If CASE=9 and TIR1=0
  344.          If VUE=2
  345.             ANGTR1=CAP*182+16380
  346.             TIR1=1
  347.          End If
  348.          If VUE=4
  349.             ANGTR1=CAP*182-16380
  350.             TIR1=1
  351.          End If
  352.          If TIR1=1
  353.             BLX1=Td Position X(0)
  354.             BLZ1=Td Position Z(0)
  355.             BAOUM1=1
  356.             Td Object 3,"explosion",BLX1,20,BLZ1,0,ANGTR1,0
  357.             Td Forward 3,100
  358.             Td Object 2,"boulet",BLX1,20,BLZ1,0,ANGTR1,0
  359.             Td Set Zone 2,0,0,0,2,10
  360.          End If
  361.       End If
  362.    End If
  363.    If VIE2=0 Then Goto BATAILLEGAGNE
  364.    If TIR1=1
  365.       If BUT1>6
  366.          BAOUM1=2
  367.       End If
  368.       If BUT1=4
  369.          BAOUM1=2
  370.          DEGATS2=1
  371.       End If
  372.       If Td Range(2,0)<5000
  373.          Td Forward 2,200
  374.       Else
  375.          BAOUM1=2
  376.       End If
  377.       If BAOUM1=2
  378.          TIR1=0
  379.          BLX1=Td Position X(2)
  380.          BLZ1=Td Position Z(2)
  381.          Td Object 3,"explosion",BLX1,20,BLZ1,0,0,0
  382.          Td Face 3,0
  383.          Td Kill 2
  384.       End If
  385.    End If
  386.    Rem -------------------------------------------------------
  387.    If TIR2=1
  388.       If BUT2=0
  389.          BAOUM2=2
  390.          DEGATS1=1
  391.       End If
  392.       If BUT2>6
  393.          BAOUM2=2
  394.       End If
  395.       If Td Range(5,4)<5000
  396.          Td Forward 5,200
  397.       Else
  398.          BAOUM2=2
  399.       End If
  400.       If BAOUM2=2
  401.          TIR2=0
  402.          BLX2=Td Position X(5)
  403.          BLZ2=Td Position Z(5)
  404.          Td Object 6,"explosion",BLX2,20,BLZ2,0,0,0
  405.          Td Face 6,0
  406.          Td Forward 6,-200
  407.          Td Kill 5
  408.       End If
  409.    End If
  410.    Rem -------------------------------------------------------
  411.    Td Forward 1,VB1
  412.    Td Move 0,Td Position X(1),45,Td Position Z(1)
  413.    Td Angle 0,0,Td Attitude B(1)+REGARD,0
  414.    Td Forward 4,VB2
  415.    ANGVUE=CAP
  416.    While ANGVUE>90
  417.       ANGVUE=ANGVUE-90
  418.    Wend
  419.    Rem -------------------------------------------------------
  420.    Td Cls
  421.    If VUE=1 Then Td Background 2,0,0,320,99 To 0,100
  422.    If VUE=4 Then Td Background 2,0,200,320,55 To 0,144
  423.    If VUE=3 Then Td Background 2,0,100,320,99 To 0,100
  424.    If VUE=2 Then Td Background 2,0,256,320,55 To 0,144
  425.    Td Redraw
  426.    Td Background 1,ANGVUE*3,0,320,100 To 0,0
  427.    Td Background 3,0,0,320,100 To 0,100
  428.    Screen Swap
  429.    Wait Vbl
  430.    Rem -------------------------------------------------------
  431.    If COQUE=0 Then Goto COULE
  432.    If VMAX=0 or VOILES=0 Then Goto EPAVE
  433.    If HOMMES=0 Then Goto MORT
  434.    If Td Collide(0)>6 Then Goto NAUFRAGE
  435.    If Td Collide(0)=4 Then Goto CHOC
  436.    If Td Collide(4)>6 Then Goto ECHOUAGE
  437.    BUT1=-1
  438.    If TIR1=1
  439.       BUT1=Td Collide(2)
  440.    End If
  441.    BUT2=-1
  442.    If TIR2=1
  443.       BUT2=Td Collide(5)
  444.    End If
  445.    If Td Bearing R(4,1)>6000 and VB2>VMAX Then Goto FUITE
  446. Loop
  447. Return
  448. Rem
  449. Rem -------------------------------------------------------
  450. Rem
  451. AFFICAP:
  452. Rem
  453. Screen 4
  454. Locate 43,1 : Print "   "
  455. Locate 42,1 : Print CAP
  456. Screen 0
  457. Return
  458. Rem
  459. Rem -------------------------------------------------------
  460. Rem
  461. AFFIVB1:
  462. Rem
  463. Screen 4
  464. Locate 44,5 : Print "  "
  465. Locate 43,5 : Print VB1
  466. Screen 0
  467. Return
  468. Rem
  469. Rem -------------------------------------------------------
  470. Rem
  471. AFFIDEG:
  472. Rem
  473. Screen 4
  474. Hslider 82,6 To 182,15,100,HOMMES,1
  475. Hslider 82,22 To 182,31,100,VOILES,1
  476. Hslider 82,38 To 182,47,100,COQUE,1
  477. Screen 0
  478. Return
  479.